package cn.stylefeng.guns.modular.sysuser.pojo.request;

import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import java.util.Date;
/**
 * 系统用户封装类
 *
 * @author zhu
 * @date 2021/10/21 18:35
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class SysUserRequest extends BaseRequest {

    /**
     * 主键
     */
	@NotNull(message = "主键不能为空", groups = {edit.class, delete.class})
    private Long userId;
	
    /**
     * 姓名
     */
    private String realName;
	
    /**
     * 昵称
     */
    private String nickName;
	
    /**
     * 账号
     */
	@NotBlank(message = "账号不能为空", groups = {add.class, edit.class})
    private String account;
	
    /**
     * 密码，加密方式为BCrypt
     */
	@NotBlank(message = "密码，加密方式为BCrypt不能为空", groups = {add.class, edit.class})
    private String password;
	
    /**
     * 头像，存的为文件id
     */
    private Long avatar;
	
    /**
     * 生日
     */
	private String birthday;
    /**
     * 性别：M-男，F-女
     */
	@NotBlank(message = "性别：M-男，F-女不能为空", groups = {add.class, edit.class})
    private String sex;
	
    /**
     * 邮箱
     */
    private String email;
	
    /**
     * 手机
     */
    private String phone;
	
    /**
     * 电话
     */
    private String tel;
	
    /**
     * 是否是超级管理员：Y-是，N-否
     */
    private String superAdminFlag;
	
    /**
     * 状态：1-正常，2-冻结
     */
	@NotNull(message = "状态：1-正常，2-冻结不能为空", groups = {add.class, edit.class})
    private Integer statusFlag;
	
    /**
     * 最后登陆IP
     */
    private String lastLoginIp;
	
    /**
     * 最后登陆时间
     */
	private String lastLoginTime;
    /**
     * 删除标记：Y-已删除，N-未删除
     */
	@NotBlank(message = "删除标记：Y-已删除，N-未删除不能为空", groups = {add.class, edit.class})
    private String delFlag;
	
    /**
     * 用户编号
     */
    private String yhbh;
	
    /**
     * 起始票号
     */
    private String qsph;
	
    /**
     * 终止票号
     */
    private String zzph;
	
    /**
     * 备份起始
     */
    private String bfqs;
	
    /**
     * 备份终止
     */
    private String bfzz;
	
    /**
     * 用户组
     */
    private String yhgroup;
	
    /**
     * 创建时间
     */
	private String createTime;
    /**
     * 创建人
     */
    private Long createUser;
	
    /**
     * 更新时间
     */
	private String updateTime;
    /**
     * 更新人
     */
    private Long updateUser;
	
}